#pragma once

#include <cstdint>
#include <memory>
#include <vector>

namespace eniac
{

class r_socket_message
{
public:
    using ptr = std::shared_ptr<r_socket_message>;

    static ptr create_obj()
    {
        return std::make_shared<r_socket_message>();
    };

    r_socket_message() = default;
    r_socket_message(const r_socket_message& other) = delete;
    r_socket_message(r_socket_message&& other) = delete;
    r_socket_message& operator=(const r_socket_message& other) = delete;
    r_socket_message& operator=(r_socket_message&& other) = delete;
    ~r_socket_message() = default;

    std::int32_t m_socket_id;
    std::vector<uint8_t> m_payload;
};

}